import sys


class ArgumentError(Exception):
	pass


def parse_args(argv):
	if len(argv) != 3:
		raise ArgumentError("require 2 args")
	arg1,arg2 = argv[1:3]
	
	if not arg1.isdigit():
		raise ArgumentError("arg1 is not digital")
	if not arg2.isdigit():
		raise ArgumentError("arg2 is not digital")
	return int(arg1),int(arg2)
	
def add(arg1,arg2):
	return arg1+arg2
	
if __name__ == "__main__":
	try:
		arg1,arg2 = parse_args(sys.argv)
	except ArgumentError as e:
		print(e)
		exit(1)
	print(add(arg1,arg2))
<class 'list'>: ['ArithmeticError', 'AssertionError', 'AttributeError', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'ChildProcessError', 
'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'EOFError', 'EnvironmentError', 'FileExistsError', 
'FileNotFoundError', 'FloatingPointError', 'IOError', 'ImportError', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError',
 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'NotADirectoryError', 'NotImplementedError', 'OSError', 'OverflowError', 'PermissionError', 
 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'RuntimeError', 'SyntaxError', 'SystemError', 'TabError', 'TimeoutError', 'TypeError', 
 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError']